package main

import (
	"fmt"
	"sort"
)

/**
排序
*/
func main() {
	defaultSort()
	customSort()
}

/**
内置排序
*/
func defaultSort() {
	strs := []string{"c", "a", "b"}
	sort.Strings(strs)
	fmt.Println(strs)
	fmt.Println(sort.StringsAreSorted(strs))
}

/**
自定义类型，实现Len()，Swap()，Less()方法即可
*/
type ByLength []string

func (s ByLength) Len() int {
	return len(s)
}

func (s ByLength) Less(i, j int) bool {
	return len(s[i]) < len(s[j])
}

func (s ByLength) Swap(i, j int) {
	s[i], s[j] = s[j], s[i]
}

/**
自定义类型排序
*/
func customSort() {
	fruits := []string{"peach", "banana", "kiwi"}
	sort.Sort(ByLength(fruits))
	fmt.Println(fruits)
}
